package com.kehutong.wxapi.response;

import org.coraframework.json.annotation.JSONField;

import java.util.List;

/**
 * @author: liukunlong
 * @date: 2021-03-08 15:56
 */
public class UserGetResponse {

    /**
     * errcode
     */ /**
     * errcode : 0
     * errmsg : ok
     * userid : zhangsan
     * name : 张三
     * department : [1,2]
     * order : [1,2]
     * position : 后台工程师
     * mobile : 13800000000
     * gender : 1
     * email : zhangsan@gzdev.com
     * is_leader_in_dept : [1,0]
     * avatar : http://wx.qlogo.cn/mmopen/ajNVdqHZLLA3WJ6DSZUfiakYe37PKnQhBIeOQBO4czqrnZDS79FH5Wm5m4X69TBicnHFlhiafvDwklOpZeXYQQ2icg/0
     * thumb_avatar : http://wx.qlogo.cn/mmopen/ajNVdqHZLLA3WJ6DSZUfiakYe37PKnQhBIeOQBO4czqrnZDS79FH5Wm5m4X69TBicnHFlhiafvDwklOpZeXYQQ2icg/100
     * telephone : 020-123456
     * alias : jackzhang
     * address : 广州市海珠区新港中路
     * open_userid : xxxxxx
     * main_department : 1
     * extattr : {"attrs":[{"type":0,"name":"文本名称","text":{"value":"文本"}},{"type":1,"name":"网页名称","web":{"url":"http://www.test.com","title":"标题"}}]}
     * status : 1
     * qr_code : https://open.work.weixin.qq.com/wwopen/userQRCode?vcode=xxx
     * external_position : 产品经理
     * external_profile : {"external_corp_name":"企业简称","external_attr":[{"type":0,"name":"文本名称","text":{"value":"文本"}},{"type":1,"name":"网页名称","web":{"url":"http://www.test.com","title":"标题"}},{"type":2,"name":"测试app","miniprogram":{"appid":"wx8bd80126147dFAKE","pagepath":"/index","title":"my miniprogram"}}]}
     */

    @JSONField(name = "errcode")
    private Integer errcode;
    /**
     * errmsg
     */
    @JSONField(name = "errmsg")
    private String errmsg;
    /**
     * userid
     */
    @JSONField(name = "userid")
    private String userid;
    /**
     * name
     */
    @JSONField(name = "name")
    private String name;
    /**
     * department
     */
    @JSONField(name = "department")
    private List<Integer> department;
    /**
     * order
     */
    @JSONField(name = "order")
    private List<Integer> order;
    /**
     * position
     */
    @JSONField(name = "position")
    private String position;
    /**
     * mobile
     */
    @JSONField(name = "mobile")
    private String mobile;
    /**
     * gender
     */
    @JSONField(name = "gender")
    private String gender;
    /**
     * email
     */
    @JSONField(name = "email")
    private String email;
    /**
     * isLeaderInDept
     */
    @JSONField(name = "is_leader_in_dept")
    private List<Integer> isLeaderInDept;
    /**
     * avatar
     */
    @JSONField(name = "avatar")
    private String avatar;
    /**
     * thumbAvatar
     */
    @JSONField(name = "thumb_avatar")
    private String thumbAvatar;
    /**
     * telephone
     */
    @JSONField(name = "telephone")
    private String telephone;
    /**
     * alias
     */
    @JSONField(name = "alias")
    private String alias;
    /**
     * address
     */
    @JSONField(name = "address")
    private String address;
    /**
     * openUserid
     */
    @JSONField(name = "open_userid")
    private String openUserid;
    /**
     * mainDepartment
     */
    @JSONField(name = "main_department")
    private Integer mainDepartment;
    /**
     * extattr
     */
    @JSONField(name = "extattr")
    private ExtattrDTO extattr;
    /**
     * status
     */
    @JSONField(name = "status")
    private Integer status;
    /**
     * qrCode
     */
    @JSONField(name = "qr_code")
    private String qrCode;
    /**
     * externalPosition
     */
    @JSONField(name = "external_position")
    private String externalPosition;
    /**
     * externalProfile
     */
    @JSONField(name = "external_profile")
    private ExternalProfileDTO externalProfile;

    public Integer getErrcode() {
        return errcode;
    }

    public void setErrcode(Integer errcode) {
        this.errcode = errcode;
    }

    public String getErrmsg() {
        return errmsg;
    }

    public void setErrmsg(String errmsg) {
        this.errmsg = errmsg;
    }

    public String getUserid() {
        return userid;
    }

    public void setUserid(String userid) {
        this.userid = userid;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public List<Integer> getDepartment() {
        return department;
    }

    public void setDepartment(List<Integer> department) {
        this.department = department;
    }

    public List<Integer> getOrder() {
        return order;
    }

    public void setOrder(List<Integer> order) {
        this.order = order;
    }

    public String getPosition() {
        return position;
    }

    public void setPosition(String position) {
        this.position = position;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public List<Integer> getIsLeaderInDept() {
        return isLeaderInDept;
    }

    public void setIsLeaderInDept(List<Integer> isLeaderInDept) {
        this.isLeaderInDept = isLeaderInDept;
    }

    public String getAvatar() {
        return avatar;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }

    public String getThumbAvatar() {
        return thumbAvatar;
    }

    public void setThumbAvatar(String thumbAvatar) {
        this.thumbAvatar = thumbAvatar;
    }

    public String getTelephone() {
        return telephone;
    }

    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }

    public String getAlias() {
        return alias;
    }

    public void setAlias(String alias) {
        this.alias = alias;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getOpenUserid() {
        return openUserid;
    }

    public void setOpenUserid(String openUserid) {
        this.openUserid = openUserid;
    }

    public Integer getMainDepartment() {
        return mainDepartment;
    }

    public void setMainDepartment(Integer mainDepartment) {
        this.mainDepartment = mainDepartment;
    }

    public ExtattrDTO getExtattr() {
        return extattr;
    }

    public void setExtattr(ExtattrDTO extattr) {
        this.extattr = extattr;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getQrCode() {
        return qrCode;
    }

    public void setQrCode(String qrCode) {
        this.qrCode = qrCode;
    }

    public String getExternalPosition() {
        return externalPosition;
    }

    public void setExternalPosition(String externalPosition) {
        this.externalPosition = externalPosition;
    }

    public ExternalProfileDTO getExternalProfile() {
        return externalProfile;
    }

    public void setExternalProfile(ExternalProfileDTO externalProfile) {
        this.externalProfile = externalProfile;
    }

    public static class ExtattrDTO {
        /**
         * attrs
         */
        @JSONField(name = "attrs")
        private List<AttrsDTO> attrs;

        public List<AttrsDTO> getAttrs() {
            return attrs;
        }

        public void setAttrs(List<AttrsDTO> attrs) {
            this.attrs = attrs;
        }

        public static class AttrsDTO {
            /**
             * type
             */ /**
             * type : 0
             * name : 文本名称
             * text : {"value":"文本"}
             * web : {"url":"http://www.test.com","title":"标题"}
             */

            @JSONField(name = "type")
            private Integer type;
            /**
             * name
             */
            @JSONField(name = "name")
            private String name;
            /**
             * text
             */
            @JSONField(name = "text")
            private TextDTO text;
            /**
             * web
             */
            @JSONField(name = "web")
            private WebDTO web;

            public Integer getType() {
                return type;
            }

            public void setType(Integer type) {
                this.type = type;
            }

            public String getName() {
                return name;
            }

            public void setName(String name) {
                this.name = name;
            }

            public TextDTO getText() {
                return text;
            }

            public void setText(TextDTO text) {
                this.text = text;
            }

            public WebDTO getWeb() {
                return web;
            }

            public void setWeb(WebDTO web) {
                this.web = web;
            }

            public static class TextDTO {
                /**
                 * value
                 */ /**
                 * value : 文本
                 */

                @JSONField(name = "value")
                private String value;

                public String getValue() {
                    return value;
                }

                public void setValue(String value) {
                    this.value = value;
                }
            }

            public static class WebDTO {
                /**
                 * url
                 */ /**
                 * url : http://www.test.com
                 * title : 标题
                 */

                @JSONField(name = "url")
                private String url;
                /**
                 * title
                 */
                @JSONField(name = "title")
                private String title;

                public String getUrl() {
                    return url;
                }

                public void setUrl(String url) {
                    this.url = url;
                }

                public String getTitle() {
                    return title;
                }

                public void setTitle(String title) {
                    this.title = title;
                }
            }
        }
    }

    public static class ExternalProfileDTO {
        /**
         * externalCorpName
         */ /**
         * external_corp_name : 企业简称
         * external_attr : [{"type":0,"name":"文本名称","text":{"value":"文本"}},{"type":1,"name":"网页名称","web":{"url":"http://www.test.com","title":"标题"}},{"type":2,"name":"测试app","miniprogram":{"appid":"wx8bd80126147dFAKE","pagepath":"/index","title":"my miniprogram"}}]
         */

        @JSONField(name = "external_corp_name")
        private String externalCorpName;
        /**
         * externalAttr
         */
        @JSONField(name = "external_attr")
        private List<ExternalAttrDTO> externalAttr;

        public String getExternalCorpName() {
            return externalCorpName;
        }

        public void setExternalCorpName(String externalCorpName) {
            this.externalCorpName = externalCorpName;
        }

        public List<ExternalAttrDTO> getExternalAttr() {
            return externalAttr;
        }

        public void setExternalAttr(List<ExternalAttrDTO> externalAttr) {
            this.externalAttr = externalAttr;
        }

        public static class ExternalAttrDTO {
            /**
             * type
             */ /**
             * type : 0
             * name : 文本名称
             * text : {"value":"文本"}
             * web : {"url":"http://www.test.com","title":"标题"}
             * miniprogram : {"appid":"wx8bd80126147dFAKE","pagepath":"/index","title":"my miniprogram"}
             */

            @JSONField(name = "type")
            private Integer type;
            /**
             * name
             */
            @JSONField(name = "name")
            private String name;
            /**
             * text
             */
            @JSONField(name = "text")
            private TextDTO text;
            /**
             * web
             */
            @JSONField(name = "web")
            private WebDTO web;
            /**
             * miniprogram
             */
            @JSONField(name = "miniprogram")
            private MiniprogramDTO miniprogram;

            public Integer getType() {
                return type;
            }

            public void setType(Integer type) {
                this.type = type;
            }

            public String getName() {
                return name;
            }

            public void setName(String name) {
                this.name = name;
            }

            public TextDTO getText() {
                return text;
            }

            public void setText(TextDTO text) {
                this.text = text;
            }

            public WebDTO getWeb() {
                return web;
            }

            public void setWeb(WebDTO web) {
                this.web = web;
            }

            public MiniprogramDTO getMiniprogram() {
                return miniprogram;
            }

            public void setMiniprogram(MiniprogramDTO miniprogram) {
                this.miniprogram = miniprogram;
            }

            public static class TextDTO {
                /**
                 * value
                 */ /**
                 * value : 文本
                 */

                @JSONField(name = "value")
                private String value;

                public String getValue() {
                    return value;
                }

                public void setValue(String value) {
                    this.value = value;
                }
            }

            public static class WebDTO {
                /**
                 * url
                 */ /**
                 * url : http://www.test.com
                 * title : 标题
                 */

                @JSONField(name = "url")
                private String url;
                /**
                 * title
                 */
                @JSONField(name = "title")
                private String title;

                public String getUrl() {
                    return url;
                }

                public void setUrl(String url) {
                    this.url = url;
                }

                public String getTitle() {
                    return title;
                }

                public void setTitle(String title) {
                    this.title = title;
                }
            }

            public static class MiniprogramDTO {
                /**
                 * appid
                 */ /**
                 * appid : wx8bd80126147dFAKE
                 * pagepath : /index
                 * title : my miniprogram
                 */

                @JSONField(name = "appid")
                private String appid;
                /**
                 * pagepath
                 */
                @JSONField(name = "pagepath")
                private String pagepath;
                /**
                 * title
                 */
                @JSONField(name = "title")
                private String title;

                public String getAppid() {
                    return appid;
                }

                public void setAppid(String appid) {
                    this.appid = appid;
                }

                public String getPagepath() {
                    return pagepath;
                }

                public void setPagepath(String pagepath) {
                    this.pagepath = pagepath;
                }

                public String getTitle() {
                    return title;
                }

                public void setTitle(String title) {
                    this.title = title;
                }
            }
        }
    }
}
